/******************************************************************************
 * \brief	进程间网络套接字通信
 * \details	用来模拟两个嵌入式设备间的串口通信；有点区别的是套接字是可靠通信，串口是
 *			不可靠通信，套接字可以不使用校验，串口必须要使用校验
 * \note	File format: UTF-8，中文编码：UTF-8
 * \author	将狼才鲸
 * \date	2023-03-21
 ******************************************************************************/

#ifndef _DEV_SOCKET_H_
#define _DEV_SOCKET_H_

/********************************** 接口函数 **********************************/
/**
 * \brief	服务器端套接字初始化
 */
extern int socket_server_init(void);

/**
 * \brief	服务器端退出套接字
 */
extern int socket_server_exit(void);

/**
 * \brief	服务器端发送数据
 */
extern int socket_server_send(char *data, int len);

/**
 * \brief	服务器端接收数据
 * \param	data:	存放数据的地址
 * \param	size:	想要读的长度（只要读缓存空了，没读满也会立即返回）
 * \return	返回实际读到的长度，可以是0，或者返回错误码
 */
extern int socket_server_recv(char *data, int size);

/**
 * \brief	客户端套接字初始化
 */
extern int socket_client_init(void);

/**
 * \brief	客户端退出套接字
 */
extern int socket_client_exit(void);

/**
 * \brief	客户端发送数据
 * \note	也可以使用send函数
 */
extern int socket_client_send(char *data, int len);

/**
 * \brief	客户端接收数据
 * \param	data:	存放数据的地址
 * \param	size:	想要读的长度（只要读缓存空了，没读满也会立即返回）
 * \return	返回实际读到的长度，可以是0，或者返回错误码
 */
extern int socket_client_recv(char *data, int size);

#endif /* _DEV_SOCKET_H_ */

/*********************************** 文件尾 ***********************************/
